 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using VentaElectrodomesticos.Sql;
using System.Data.SqlClient;
using System.Collections;
using VentaElectrodomesticos.Utilities;

namespace VentaElectrodomesticos.AbmUsuario
{
    public partial class FormBajaUsuario : Form
    {
        private ClaseSQL sql = new ClaseSQL();
        
        public FormBajaUsuario()
        {
            InitializeComponent();

            sql.llenarCombo(this.comboBoxProvincias, "SELECT idProvincia, nomProvincia FROM LAG.provincias");
            sql.llenarCombo(this.comboBoxSucursal, "SELECT idSucursal, direccion FROM LAG.sucursales");
            sql.llenarCombo(this.comboBoxTipo, "select idTipoUsu, nomTipoUsu from LAG.usuarios_tipos");
        }

        
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                sql.Open();
                String[,] parametros = new String[2, 1];
                    String sp = "LAG.sp_bajaUsuario";
                    parametros[0, 0] = "@ID";
                    parametros[1,0] = dataGridView[0,e.RowIndex].Value.ToString();
                    SqlDataReader reader = sql.ejecutarStoredProcedure(sp, parametros);
                    if (reader != null)
                    {
                        MessageBox.Show("Se ha dado de baja el Usuario de " + (String)dataGridView[1, e.RowIndex].Value + " " + (String)dataGridView[2, e.RowIndex].Value, "Success");
                        this.dataGridView.Rows.RemoveAt(this.dataGridView.CurrentRow.Index);
                    }
                
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message, "Error!");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.StackTrace, "Error app");
            }
            finally
            {
                sql.Close();
            }
        }

        private void FormBajaUsuario_Load(object sender, EventArgs e)
        {

        }

        private void comboBoxSucursal_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void comboBoxProvincias_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                dataGridView.Rows.Clear();
                sql.Open();

                String condiciones = "";
                condiciones += Utils.agregarCondicionExacta(condiciones, "dni", textBoxDni.Text, true);
                condiciones += Utils.agregarCondicion(condiciones, "nombre", textBoxNombre.Text);
                condiciones += Utils.agregarCondicion(condiciones, "apellido", textBoxApellido.Text);
                condiciones += Utils.agregarCondicionConKeyValue(condiciones, "empl.idProvincia", comboBoxProvincias.SelectedItem);
                condiciones += Utils.agregarCondicionConKeyValue(condiciones, "empl.idSucursal", comboBoxSucursal.SelectedItem);
                condiciones += Utils.agregarCondicionConKeyValue(condiciones, "empl.idTipoUsu", comboBoxTipo.SelectedItem);

                condiciones += Utils.agregarCondicionExacta(condiciones, "empl.statusPersona", "1", false);
                condiciones += Utils.agregarCondicion(condiciones, "password", "'XX_aun_sin_pass_XX'", " <> ", "");

                condiciones += Utils.agregarCondicionExacta(condiciones, "empl.statusUsuario", "1", false);


                String query = "SELECT nombre,apellido,dni,mail,nomProvincia,suc.direccion,nomTipoUsu,idPersona,empl.ususario FROM LAG.vw_empleados empl"
                    + " LEFT JOIN LAG.provincias prov ON empl.idProvincia = prov.idProvincia"
                    + " LEFT JOIN LAG.sucursales suc ON empl.idSucursal = suc.idSucursal"
                    + " LEFT JOIN LAG.usuarios_tipos ut ON empl.idTipoUsu = ut.idTipoUsu"
                    + condiciones;


                SqlDataReader reader = sql.busquedaSQLDataReader(query);
                while (reader.Read())
                {
                    dataGridView.Rows.Add(
                        reader["idPersona"],                        
                        reader["nombre"].ToString(),
                        reader["apellido"].ToString(),
                        reader["dni"].ToString(),
                        reader["mail"].ToString(),
                        reader["nomProvincia"].ToString(),
                        reader["direccion"].ToString(),
                        reader["nomTipoUsu"].ToString(),
                        reader["ususario"].ToString()
                    );
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error al buscar usuario");
            }
            finally
            {
                sql.Close();
            }
        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

        private void comboBoxTipo_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void textBoxDni_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBoxApellido_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBoxNombre_TextChanged(object sender, EventArgs e)
        {

        }

        private void label7_Click(object sender, EventArgs e)
        {

        }

        private void label6_Click(object sender, EventArgs e)
        {

        }

        private void label5_Click(object sender, EventArgs e)
        {

        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void btnLimpiar_Click(object sender, EventArgs e)
        {
            Utils.ClearTextBoxes(groupBox1);
            comboBoxProvincias.SelectedIndex = -1;
            comboBoxSucursal.SelectedIndex = -1;
            comboBoxTipo.SelectedIndex = -1;
            dataGridView.Rows.Clear();
        }

    }
}
